<?php

namespace App\Providers;

use Illuminate\Queue\Events\JobFailed;
use Illuminate\Queue\Events\JobProcessed;
use Illuminate\Queue\Events\JobProcessing;
use Illuminate\Support\Facades\Queue;
use Illuminate\Support\ServiceProvider;

class AppServiceProvider extends ServiceProvider
{
    /**
     * Register any application services.
     *
     * @return void
     */
    public function register()
    {
        //
//        # 注册一个job执行失败的消息到队列，可以告知你的团队，最好在AppServiceProvider服务提供者的boot方法中注册
//        Queue::failing(function ($event) {
//            // $event->connectionName
//            // $event->job
//            // $event->exception
//            var_dump("任务有异常报错哟~");
//        });
//
//        # 注册一个job执行每个任务之前的执行回调，他和中间件的区别是他的结果不会影响任务的执行，而中间件是可以终止任务执行的
//        Queue::before(function ($event) {
//            // $event->connectionName
//            // $event->job
//            // $event->job->payload()
//            var_dump("任务开始执行了哟~");
//        });
//
//        # 注册一个job执行每个任务之后的执行回调，他和中间件的区别是他的结果不会影响任务的执行，而中间件是可以终止任务执行的
//        Queue::after(function ($event) {
//            // $event->connectionName
//            // $event->job
//            // $event->job->payload()
//            var_dump("任务执行完成了哟~");
//        });
    }
}
